using B.S.NewMedical.ErrorCode;
using MediatR;

namespace B.S.NewMedical.Api.Write.Application.Command.Doctor
{
    /// <summary>
    /// 收费命令
    /// </summary>
    public class ProcessChargeCommand : IRequest<ApiResult<int>>
    {
        /// <summary>
        /// 就诊卡号
        /// </summary>
        public string CardNo { get; set; }

        /// <summary>
        /// 应收金额
        /// </summary>
        public decimal TotalAmount { get; set; }

        /// <summary>
        /// 优惠金额
        /// </summary>
        public decimal Discount { get; set; }

        /// <summary>
        /// 实收金额
        /// </summary>
        public decimal RealAmount { get; set; }

        /// <summary>
        /// 支付方式（现金/刷卡/支付宝/微信/医疗卡）
        /// </summary>
        public string PayChannel { get; set; }

        /// <summary>
        /// 收费员ID
        /// </summary>
        public int CashierId { get; set; }

        /// <summary>
        /// 使用医疗卡余额金额
        /// </summary>
        public decimal CardPayAmount { get; set; }

        /// <summary>
        /// 其他方式支付金额
        /// </summary>
        public decimal OtherPayAmount { get; set; }

        /// <summary>
        /// 选中的处方ID列表
        /// </summary>
        public List<int> PrescriptionIds { get; set; } = new List<int>();

        /// <summary>
        /// 选中的检验单ID列表
        /// </summary>
        public List<int> LaborderIds { get; set; } = new List<int>();
    }
} 